import { defineStore } from 'pinia';
import { AppState } from '@2/app/core/storage/app.storage';
import { Persistent } from '@/utils/cache/persistent';
import { PROJ_CFG_KEY } from '@/enums/cacheEnum';
import { store } from '@/store';
import { StorageEnum } from '@2/app/core/storage/storage.enum';

/**
 * 用于定义用户存储
 * @return 定义用户存储，（不能为 undefined）
 */
const defineStorage = defineStore({
  id: StorageEnum.APP_STORE_NAME,
  state: (): AppState => ({
    darkMode: undefined,
    pageLoading: false,
    projectConfig: Persistent.getLocal(PROJ_CFG_KEY),
    beforeMiniInfo: {},
  }),
});

/**
 * 用于需要在设置之外使用，定义用户存储
 * @return 定义用户存储，（不能为 undefined）
 */
export function appDefineStore() {
  return defineStorage(store);
}
